using System;
using System.Security;
using System.Runtime.InteropServices;

namespace Ultraviolet.ImGuiViewProvider.Bindings
{
#pragma warning disable 1591
    [SuppressUnmanagedCodeSecurity]
    public abstract unsafe class ImGuiNativeImpl
    {
        public abstract float igGetFrameHeight();
        public abstract IntPtr igCreateContext(ImFontAtlas* shared_font_atlas);
        public abstract void igTextUnformatted(byte* text, byte* text_end);
        public abstract void igPopFont();
        public abstract byte igCombo(byte* label, int* current_item, byte** items, int items_count, int popup_max_height_in_items);
        public abstract byte igComboStr(byte* label, int* current_item, byte* items_separated_by_zeros, int popup_max_height_in_items);
        public abstract void igCaptureKeyboardFromApp(byte capture);
        public abstract byte igIsWindowFocused(ImGuiFocusedFlags flags);
        public abstract void igRender();
        public abstract void ImDrawList_ChannelsSetCurrent(ImDrawList* self, int channel_index);
        public abstract byte igDragFloat4(byte* label, Vector4* v, float v_speed, float v_min, float v_max, byte* format, float power);
        public abstract void ImDrawList_ChannelsSplit(ImDrawList* self, int channels_count);
        public abstract byte igIsMousePosValid(Vector2* mouse_pos);
        public abstract Vector2 igGetCursorScreenPos();
        public abstract byte igDebugCheckVersionAndDataLayout(byte* version_str, uint sz_io, uint sz_style, uint sz_vec2, uint sz_vec4, uint sz_drawvert);
        public abstract void igSetScrollHere(float center_y_ratio);
        public abstract void igSetScrollY(float scroll_y);
        public abstract void igSetColorEditOptions(ImGuiColorEditFlags flags);
        public abstract void igSetScrollFromPosY(float pos_y, float center_y_ratio);
        public abstract Vector4* igGetStyleColorVec4(ImGuiCol idx);
        public abstract byte igIsMouseHoveringRect(Vector2 r_min, Vector2 r_max, byte clip);
        public abstract void ImVec4_ImVec4(Vector4* self);
        public abstract void ImVec4_ImVec4Float(Vector4* self, float _x, float _y, float _z, float _w);
        public abstract void ImColor_SetHSV(ImColor* self, float h, float s, float v, float a);
        public abstract byte igDragFloat3(byte* label, Vector3* v, float v_speed, float v_min, float v_max, byte* format, float power);
        public abstract void ImDrawList_AddPolyline(ImDrawList* self, Vector2* points, int num_points, uint col, byte closed, float thickness);
        public abstract void igValueBool(byte* prefix, byte b);
        public abstract void igValueInt(byte* prefix, int v);
        public abstract void igValueUint(byte* prefix, uint v);
        public abstract void igValueFloat(byte* prefix, float v, byte* float_format);
        public abstract void ImGuiTextFilter_Build(ImGuiTextFilter* self);
        public abstract Vector2 igGetItemRectMax();
        public abstract byte igIsItemDeactivated();
        public abstract void igPushStyleVarFloat(ImGuiStyleVar idx, float val);
        public abstract void igPushStyleVarVec2(ImGuiStyleVar idx, Vector2 val);
        public abstract byte* igSaveIniSettingsToMemory(uint* out_ini_size);
        public abstract byte igDragIntRange2(byte* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, byte* format, byte* format_max);
        public abstract void igUnindent(float indent_w);
        public abstract ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self, byte* compressed_font_data_base85, float size_pixels, ImFontConfig* font_cfg, ushort* glyph_ranges);
        public abstract void igPopAllowKeyboardFocus();
        public abstract void igLoadIniSettingsFromDisk(byte* ini_filename);
        public abstract Vector2 igGetCursorStartPos();
        public abstract void igSetCursorScreenPos(Vector2 screen_pos);
        public abstract byte igInputInt4(byte* label, int* v, ImGuiInputTextFlags extra_flags);
        public abstract void ImFont_AddRemapChar(ImFont* self, ushort dst, ushort src, byte overwrite_dst);
        public abstract void ImFont_AddGlyph(ImFont* self, ushort c, float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float advance_x);
        public abstract byte igIsRectVisible(Vector2 size);
        public abstract byte igIsRectVisibleVec2(Vector2 rect_min, Vector2 rect_max);
        public abstract void ImFont_GrowIndex(ImFont* self, int new_size);
        public abstract byte ImFontAtlas_Build(ImFontAtlas* self);
        public abstract void igLabelText(byte* label, byte* fmt);
        public abstract void ImFont_RenderText(ImFont* self, ImDrawList* draw_list, float size, Vector2 pos, uint col, Vector4 clip_rect, byte* text_begin, byte* text_end, float wrap_width, byte cpu_fine_clip);
        public abstract void igLogFinish();
        public abstract byte igIsKeyPressed(int user_key_index, byte repeat);
        public abstract float igGetColumnOffset(int column_index);
        public abstract void ImDrawList_PopClipRect(ImDrawList* self);
        public abstract ImFontGlyph* ImFont_FindGlyphNoFallback(ImFont* self, ushort c);
        public abstract void igSetNextWindowCollapsed(byte collapsed, ImGuiCond cond);
        public abstract IntPtr igGetCurrentContext();
        public abstract byte igSmallButton(byte* label);
        public abstract byte igOpenPopupOnItemClick(byte* str_id, int mouse_button);
        public abstract byte igIsAnyMouseDown();
        public abstract byte* ImFont_CalcWordWrapPositionA(ImFont* self, float scale, byte* text, byte* text_end, float wrap_width);
        public abstract Vector2 ImFont_CalcTextSizeA(ImFont* self, float size, float max_width, float wrap_width, byte* text_begin, byte* text_end, byte** remaining);
        public abstract void GlyphRangesBuilder_SetBit(GlyphRangesBuilder* self, int n);
        public abstract byte ImFont_IsLoaded(ImFont* self);
        public abstract float ImFont_GetCharAdvance(ImFont* self, ushort c);
        public abstract byte igImageButton(IntPtr user_texture_id, Vector2 size, Vector2 uv0, Vector2 uv1, int frame_padding, Vector4 bg_col, Vector4 tint_col);
        public abstract void ImFont_SetFallbackChar(ImFont* self, ushort c);
        public abstract void igEndFrame();
        public abstract byte igSliderFloat2(byte* label, Vector2* v, float v_min, float v_max, byte* format, float power);
        public abstract void ImFont_RenderChar(ImFont* self, ImDrawList* draw_list, float size, Vector2 pos, uint col, ushort c);
        public abstract byte igRadioButtonBool(byte* label, byte active);
        public abstract byte igRadioButtonIntPtr(byte* label, int* v, int v_button);
        public abstract void ImDrawList_PushClipRect(ImDrawList* self, Vector2 clip_rect_min, Vector2 clip_rect_max, byte intersect_with_current_clip_rect);
        public abstract ImFontGlyph* ImFont_FindGlyph(ImFont* self, ushort c);
        public abstract byte igIsItemDeactivatedAfterEdit();
        public abstract ImDrawList* igGetWindowDrawList();
        public abstract ImFont* ImFontAtlas_AddFont(ImFontAtlas* self, ImFontConfig* font_cfg);
        public abstract void ImDrawList_PathBezierCurveTo(ImDrawList* self, Vector2 p1, Vector2 p2, Vector2 p3, int num_segments);
        public abstract void ImGuiPayload_Clear(ImGuiPayload* self);
        public abstract void igNewLine();
        public abstract byte igIsItemFocused();
        public abstract void igLoadIniSettingsFromMemory(byte* ini_data, uint ini_size);
        public abstract byte igSliderInt2(byte* label, int* v, int v_min, int v_max, byte* format);
        public abstract void igSetWindowSizeVec2(Vector2 size, ImGuiCond cond);
        public abstract void igSetWindowSizeStr(byte* name, Vector2 size, ImGuiCond cond);
        public abstract byte igInputFloat(byte* label, float* v, float step, float step_fast, byte* format, ImGuiInputTextFlags extra_flags);
        public abstract void ImFont_ImFont(ImFont* self);
        public abstract void ImGuiStorage_SetFloat(ImGuiStorage* self, uint key, float val);
        public abstract void igColorConvertRGBtoHSV(float r, float g, float b, float* out_h, float* out_s, float* out_v);
        public abstract byte igBeginMenuBar();
        public abstract byte igIsPopupOpen(byte* str_id);
        public abstract byte igIsItemVisible();
        public abstract void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self, CustomRect* rect, Vector2* out_uv_min, Vector2* out_uv_max);
        public abstract CustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self, int index);
        public abstract void GlyphRangesBuilder_AddText(GlyphRangesBuilder* self, byte* text, byte* text_end);
        public abstract void ImDrawList_UpdateTextureID(ImDrawList* self);
        public abstract void igSetNextWindowSize(Vector2 size, ImGuiCond cond);
        public abstract int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self, uint id, int width, int height);
        public abstract void igSetWindowCollapsedBool(byte collapsed, ImGuiCond cond);
        public abstract void igSetWindowCollapsedStr(byte* name, byte collapsed, ImGuiCond cond);
        public abstract Vector2 igGetMouseDragDelta(int button, float lock_threshold);
        public abstract ImGuiPayload* igAcceptDragDropPayload(byte* type, ImGuiDragDropFlags flags);
        public abstract byte igBeginDragDropSource(ImGuiDragDropFlags flags);
        public abstract byte CustomRect_IsPacked(CustomRect* self);
        public abstract void igPlotLines(byte* label, float* values, int values_count, int values_offset, byte* overlay_text, float scale_min, float scale_max, Vector2 graph_size, int stride);
        public abstract byte ImFontAtlas_IsBuilt(ImFontAtlas* self);
        public abstract void ImVec2_ImVec2(Vector2* self);
        public abstract void ImVec2_ImVec2Float(Vector2* self, float _x, float _y);
        public abstract void ImGuiPayload_ImGuiPayload(ImGuiPayload* self);
        public abstract void ImDrawList_Clear(ImDrawList* self);
        public abstract void GlyphRangesBuilder_AddRanges(GlyphRangesBuilder* self, ushort* ranges);
        public abstract int igGetFrameCount();
        public abstract byte* ImFont_GetDebugName(ImFont* self);
        public abstract void igListBoxFooter();
        public abstract void igPopClipRect();
        public abstract void ImDrawList_AddBezierCurve(ImDrawList* self, Vector2 pos0, Vector2 cp0, Vector2 cp1, Vector2 pos1, uint col, float thickness, int num_segments);
        public abstract void GlyphRangesBuilder_GlyphRangesBuilder(GlyphRangesBuilder* self);
        public abstract Vector2 igGetWindowSize();
        public abstract ushort* ImFontAtlas_GetGlyphRangesThai(ImFontAtlas* self);
        public abstract byte igCheckboxFlags(byte* label, uint* flags, uint flags_value);
        public abstract ushort* ImFontAtlas_GetGlyphRangesCyrillic(ImFontAtlas* self);
        public abstract byte igIsWindowHovered(ImGuiHoveredFlags flags);
        public abstract ushort* ImFontAtlas_GetGlyphRangesChineseSimplifiedCommon(ImFontAtlas* self);
        public abstract void igPlotHistogramFloatPtr(byte* label, float* values, int values_count, int values_offset, byte* overlay_text, float scale_min, float scale_max, Vector2 graph_size, int stride);
        public abstract byte igBeginPopupContextVoid(byte* str_id, int mouse_button);
        public abstract ushort* ImFontAtlas_GetGlyphRangesChineseFull(ImFontAtlas* self);
        public abstract void igShowStyleEditor(ImGuiStyle* @ref);
        public abstract byte igCheckbox(byte* label, byte* v);
        public abstract Vector2 igGetWindowPos();
        public abstract void ImGuiInputTextCallbackData_ImGuiInputTextCallbackData(ImGuiInputTextCallbackData* self);
        public abstract void igSetNextWindowContentSize(Vector2 size);
        public abstract void igTextColored(Vector4 col, byte* fmt);
        public abstract void igLogToFile(int max_depth, byte* filename);
        public abstract byte igButton(byte* label, Vector2 size);
        public abstract byte igIsItemEdited();
        public abstract void ImDrawList_PushTextureID(ImDrawList* self, IntPtr texture_id);
        public abstract void igTreeAdvanceToLabelPos();
        public abstract void ImGuiInputTextCallbackData_DeleteChars(ImGuiInputTextCallbackData* self, int pos, int bytes_count);
        public abstract byte igDragInt2(byte* label, int* v, float v_speed, int v_min, int v_max, byte* format);
        public abstract ushort* ImFontAtlas_GetGlyphRangesDefault(ImFontAtlas* self);
        public abstract byte igIsAnyItemActive();
        public abstract void ImFontAtlas_SetTexID(ImFontAtlas* self, IntPtr id);
        public abstract byte igMenuItemBool(byte* label, byte* shortcut, byte selected, byte enabled);
        public abstract byte igMenuItemBoolPtr(byte* label, byte* shortcut, byte* p_selected, byte enabled);
        public abstract byte igSliderFloat4(byte* label, Vector4* v, float v_min, float v_max, byte* format, float power);
        public abstract float igGetCursorPosX();
        public abstract void ImFontAtlas_ClearTexData(ImFontAtlas* self);
        public abstract void ImFontAtlas_ClearFonts(ImFontAtlas* self);
        public abstract int igGetColumnsCount();
        public abstract void igPopButtonRepeat();
        public abstract byte igDragScalarN(byte* label, ImGuiDataType data_type, void* v, int components, float v_speed, void* v_min, void* v_max, byte* format, float power);
        public abstract byte ImGuiPayload_IsPreview(ImGuiPayload* self);
        public abstract void igSpacing();
        public abstract void ImFontAtlas_Clear(ImFontAtlas* self);
        public abstract byte igIsAnyItemFocused();
        public abstract void ImDrawList_AddRectFilled(ImDrawList* self, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags);
        public abstract ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self, void* compressed_font_data, int compressed_font_size, float size_pixels, ImFontConfig* font_cfg, ushort* glyph_ranges);
        public abstract void igMemFree(void* ptr);
        public abstract Vector2 igGetFontTexUvWhitePixel();
        public abstract void ImDrawList_AddDrawCmd(ImDrawList* self);
        public abstract byte igIsItemClicked(int mouse_button);
        public abstract ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* self, void* font_data, int font_size, float size_pixels, ImFontConfig* font_cfg, ushort* glyph_ranges);
        public abstract ImFont* ImFontAtlas_AddFontFromFileTTF(ImFontAtlas* self, byte* filename, float size_pixels, ImFontConfig* font_cfg, ushort* glyph_ranges);
        public abstract void igProgressBar(float fraction, Vector2 size_arg, byte* overlay);
        public abstract ImFont* ImFontAtlas_AddFontDefault(ImFontAtlas* self, ImFontConfig* font_cfg);
        public abstract void igSetNextWindowBgAlpha(float alpha);
        public abstract byte igBeginPopup(byte* str_id, ImGuiWindowFlags flags);
        public abstract void ImFont_BuildLookupTable(ImFont* self);
        public abstract float igGetScrollX();
        public abstract int igGetKeyIndex(ImGuiKey imgui_key);
        public abstract ImDrawList* igGetOverlayDrawList();
        public abstract uint igGetIDStr(byte* str_id);
        public abstract uint igGetIDRange(byte* str_id_begin, byte* str_id_end);
        public abstract uint igGetIDPtr(void* ptr_id);
        public abstract ushort* ImFontAtlas_GetGlyphRangesJapanese(ImFontAtlas* self);
        public abstract byte igListBoxHeaderVec2(byte* label, Vector2 size);
        public abstract byte igListBoxHeaderInt(byte* label, int items_count, int height_in_items);
        public abstract void ImFontConfig_ImFontConfig(ImFontConfig* self);
        public abstract byte igIsMouseReleased(int button);
        public abstract void ImDrawData_ScaleClipRects(ImDrawData* self, Vector2 sc);
        public abstract Vector2 igGetItemRectMin();
        public abstract void ImDrawData_DeIndexAllBuffers(ImDrawData* self);
        public abstract void igLogText(byte* fmt);
        public abstract void ImDrawData_Clear(ImDrawData* self);
        public abstract void* ImGuiStorage_GetVoidPtr(ImGuiStorage* self, uint key);
        public abstract void igTextWrapped(byte* fmt);
        public abstract void ImDrawList_UpdateClipRect(ImDrawList* self);
        public abstract void ImDrawList_PrimVtx(ImDrawList* self, Vector2 pos, Vector2 uv, uint col);
        public abstract void igEndGroup();
        public abstract ImFont* igGetFont();
        public abstract void igTreePushStr(byte* str_id);
        public abstract void igTreePushPtr(void* ptr_id);
        public abstract void igTextDisabled(byte* fmt);
        public abstract void ImDrawList_PrimRect(ImDrawList* self, Vector2 a, Vector2 b, uint col);
        public abstract void ImDrawList_AddQuad(ImDrawList* self, Vector2 a, Vector2 b, Vector2 c, Vector2 d, uint col, float thickness);
        public abstract void ImDrawList_ClearFreeMemory(ImDrawList* self);
        public abstract void igSetNextTreeNodeOpen(byte is_open, ImGuiCond cond);
        public abstract void igLogToTTY(int max_depth);
        public abstract void GlyphRangesBuilder_BuildRanges(GlyphRangesBuilder* self, ImVector* out_ranges);
        public abstract ImDrawList* ImDrawList_CloneOutput(ImDrawList* self);
        public abstract ImGuiIO* igGetIO();
        public abstract byte igDragInt4(byte* label, int* v, float v_speed, int v_min, int v_max, byte* format);
        public abstract void igNextColumn();
        public abstract void ImDrawList_AddRect(ImDrawList* self, Vector2 a, Vector2 b, uint col, float rounding, int rounding_corners_flags, float thickness);
        public abstract void TextRange_split(TextRange* self, byte separator, ImVector* @out);
        public abstract void igSetCursorPos(Vector2 local_pos);
        public abstract byte igBeginPopupModal(byte* name, byte* p_open, ImGuiWindowFlags flags);
        public abstract byte igSliderInt4(byte* label, int* v, int v_min, int v_max, byte* format);
        public abstract void ImDrawList_AddCallback(ImDrawList* self, IntPtr callback, void* callback_data);
        public abstract void igShowMetricsWindow(byte* p_open);
        public abstract float igGetScrollMaxY();
        public abstract void igBeginTooltip();
        public abstract void igSetScrollX(float scroll_x);
        public abstract ImDrawData* igGetDrawData();
        public abstract float igGetTextLineHeight();
        public abstract void igSeparator();
        public abstract byte igBeginChild(byte* str_id, Vector2 size, byte border, ImGuiWindowFlags flags);
        public abstract byte igBeginChildID(uint id, Vector2 size, byte border, ImGuiWindowFlags flags);
        public abstract void ImDrawList_PathRect(ImDrawList* self, Vector2 rect_min, Vector2 rect_max, float rounding, int rounding_corners_flags);
        public abstract byte igIsMouseClicked(int button, byte repeat);
        public abstract float igCalcItemWidth();
        public abstract void ImDrawList_PathArcToFast(ImDrawList* self, Vector2 centre, float radius, int a_min_of_12, int a_max_of_12);
        public abstract void igEndChildFrame();
        public abstract void igIndent(float indent_w);
        public abstract byte igSetDragDropPayload(byte* type, void* data, uint size, ImGuiCond cond);
        public abstract byte GlyphRangesBuilder_GetBit(GlyphRangesBuilder* self, int n);
        public abstract byte ImGuiTextFilter_Draw(ImGuiTextFilter* self, byte* label, float width);
        public abstract void igShowDemoWindow(byte* p_open);
        public abstract void ImDrawList_PathStroke(ImDrawList* self, uint col, byte closed, float thickness);
        public abstract void ImDrawList_PathFillConvex(ImDrawList* self, uint col);
        public abstract void ImDrawList_PathLineToMergeDuplicate(ImDrawList* self, Vector2 pos);
        public abstract void igEndMenu();
        public abstract byte igColorButton(byte* desc_id, Vector4 col, ImGuiColorEditFlags flags, Vector2 size);
        public abstract void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self, byte** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel);
        public abstract byte igIsKeyReleased(int user_key_index);
        public abstract void igSetClipboardText(byte* text);
        public abstract void ImDrawList_PathArcTo(ImDrawList* self, Vector2 centre, float radius, float a_min, float a_max, int num_segments);
        public abstract void ImDrawList_AddConvexPolyFilled(ImDrawList* self, Vector2* points, int num_points, uint col);
        public abstract byte igIsWindowCollapsed();
        public abstract void igShowFontSelector(byte* label);
        public abstract void ImDrawList_AddImageQuad(ImDrawList* self, IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 c, Vector2 d, Vector2 uv_a, Vector2 uv_b, Vector2 uv_c, Vector2 uv_d, uint col);
        public abstract void igSetNextWindowFocus();
        public abstract void igSameLine(float pos_x, float spacing_w);
        public abstract byte igBegin(byte* name, byte* p_open, ImGuiWindowFlags flags);
        public abstract byte igColorEdit3(byte* label, Vector3* col, ImGuiColorEditFlags flags);
        public abstract void ImDrawList_AddImage(ImDrawList* self, IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col);
        public abstract void ImGuiIO_AddInputCharactersUTF8(ImGuiIO* self, byte* utf8_chars);
        public abstract void ImDrawList_AddText(ImDrawList* self, Vector2 pos, uint col, byte* text_begin, byte* text_end);
        public abstract void ImDrawList_AddTextFontPtr(ImDrawList* self, ImFont* font, float font_size, Vector2 pos, uint col, byte* text_begin, byte* text_end, float wrap_width, Vector4* cpu_fine_clip_rect);
        public abstract void ImDrawList_AddCircleFilled(ImDrawList* self, Vector2 centre, float radius, uint col, int num_segments);
        public abstract byte igInputFloat2(byte* label, Vector2* v, byte* format, ImGuiInputTextFlags extra_flags);
        public abstract void igPushButtonRepeat(byte repeat);
        public abstract void igPopItemWidth();
        public abstract void ImDrawList_AddCircle(ImDrawList* self, Vector2 centre, float radius, uint col, int num_segments, float thickness);
        public abstract void ImDrawList_AddTriangleFilled(ImDrawList* self, Vector2 a, Vector2 b, Vector2 c, uint col);
        public abstract void ImDrawList_AddTriangle(ImDrawList* self, Vector2 a, Vector2 b, Vector2 c, uint col, float thickness);
        public abstract void ImDrawList_AddQuadFilled(ImDrawList* self, Vector2 a, Vector2 b, Vector2 c, Vector2 d, uint col);
        public abstract float igGetFontSize();
        public abstract byte igInputDouble(byte* label, double* v, double step, double step_fast, byte* format, ImGuiInputTextFlags extra_flags);
        public abstract void ImDrawList_PrimReserve(ImDrawList* self, int idx_count, int vtx_count);
        public abstract void ImDrawList_AddRectFilledMultiColor(ImDrawList* self, Vector2 a, Vector2 b, uint col_upr_left, uint col_upr_right, uint col_bot_right, uint col_bot_left);
        public abstract void igEndPopup();
        public abstract void ImFontAtlas_ClearInputData(ImFontAtlas* self);
        public abstract void ImDrawList_AddLine(ImDrawList* self, Vector2 a, Vector2 b, uint col, float thickness);
        public abstract byte igInputTextMultiline(byte* label, byte* buf, uint buf_size, Vector2 size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
        public abstract byte igSelectable(byte* label, byte selected, ImGuiSelectableFlags flags, Vector2 size);
        public abstract byte igSelectableBoolPtr(byte* label, byte* p_selected, ImGuiSelectableFlags flags, Vector2 size);
        public abstract byte igListBoxStr_arr(byte* label, int* current_item, byte** items, int items_count, int height_in_items);
        public abstract Vector2 igGetCursorPos();
        public abstract Vector2 ImDrawList_GetClipRectMin(ImDrawList* self);
        public abstract void ImDrawList_PopTextureID(ImDrawList* self);
        public abstract byte igInputFloat4(byte* label, Vector4* v, byte* format, ImGuiInputTextFlags extra_flags);
        public abstract void igSetCursorPosY(float y);
        public abstract byte* igGetVersion();
        public abstract void igEndCombo();
        public abstract void igPushIDStr(byte* str_id);
        public abstract void igPushIDRange(byte* str_id_begin, byte* str_id_end);
        public abstract void igPushIDPtr(void* ptr_id);
        public abstract void igPushIDInt(int int_id);
        public abstract void ImDrawList_ImDrawList(ImDrawList* self, IntPtr shared_data);
        public abstract void ImDrawCmd_ImDrawCmd(ImDrawCmd* self);
        public abstract void ImGuiListClipper_End(ImGuiListClipper* self);
        public abstract void igAlignTextToFramePadding();
        public abstract void igPopStyleColor(int count);
        public abstract void ImGuiListClipper_Begin(ImGuiListClipper* self, int items_count, float items_height);
        public abstract void igText(byte* fmt);
        public abstract byte ImGuiListClipper_Step(ImGuiListClipper* self);
        public abstract float igGetTextLineHeightWithSpacing();
        public abstract float* ImGuiStorage_GetFloatRef(ImGuiStorage* self, uint key, float default_val);
        public abstract void igEndTooltip();
        public abstract void ImGuiListClipper_ImGuiListClipper(ImGuiListClipper* self, int items_count, float items_height);
        public abstract byte igDragInt(byte* label, int* v, float v_speed, int v_min, int v_max, byte* format);
        public abstract byte igSliderFloat(byte* label, float* v, float v_min, float v_max, byte* format, float power);
        public abstract uint igColorConvertFloat4ToU32(Vector4 @in);
        public abstract void ImGuiIO_ClearInputCharacters(ImGuiIO* self);
        public abstract void igPushClipRect(Vector2 clip_rect_min, Vector2 clip_rect_max, byte intersect_with_current_clip_rect);
        public abstract void igSetColumnWidth(int column_index, float width);
        public abstract byte ImGuiPayload_IsDataType(ImGuiPayload* self, byte* type);
        public abstract byte igBeginMainMenuBar();
        public abstract void CustomRect_CustomRect(CustomRect* self);
        public abstract byte ImGuiInputTextCallbackData_HasSelection(ImGuiInputTextCallbackData* self);
        public abstract void ImGuiInputTextCallbackData_InsertChars(ImGuiInputTextCallbackData* self, int pos, byte* text, byte* text_end);
        public abstract byte ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self, ImGuiMouseCursor cursor, Vector2* out_offset, Vector2* out_size, Vector2* out_uv_border, Vector2* out_uv_fill);
        public abstract byte igVSliderScalar(byte* label, Vector2 size, ImGuiDataType data_type, void* v, void* v_min, void* v_max, byte* format, float power);
        public abstract void ImGuiStorage_SetAllInt(ImGuiStorage* self, int val);
        public abstract void** ImGuiStorage_GetVoidPtrRef(ImGuiStorage* self, uint key, void* default_val);
        public abstract void igStyleColorsLight(ImGuiStyle* dst);
        public abstract byte igSliderFloat3(byte* label, Vector3* v, float v_min, float v_max, byte* format, float power);
        public abstract byte igDragFloat(byte* label, float* v, float v_speed, float v_min, float v_max, byte* format, float power);
        public abstract byte* ImGuiStorage_GetBoolRef(ImGuiStorage* self, uint key, byte default_val);
        public abstract float igGetWindowHeight();
        public abstract Vector2 igGetMousePosOnOpeningCurrentPopup();
        public abstract int* ImGuiStorage_GetIntRef(ImGuiStorage* self, uint key, int default_val);
        public abstract void igCalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end);
        public abstract void ImGuiStorage_SetVoidPtr(ImGuiStorage* self, uint key, void* val);
        public abstract void igEndDragDropSource();
        public abstract void ImGuiStorage_BuildSortByKey(ImGuiStorage* self);
        public abstract float ImGuiStorage_GetFloat(ImGuiStorage* self, uint key, float default_val);
        public abstract void ImGuiStorage_SetBool(ImGuiStorage* self, uint key, byte val);
        public abstract byte ImGuiStorage_GetBool(ImGuiStorage* self, uint key, byte default_val);
        public abstract float igGetFrameHeightWithSpacing();
        public abstract void ImGuiStorage_SetInt(ImGuiStorage* self, uint key, int val);
        public abstract void igCloseCurrentPopup();
        public abstract void ImGuiTextBuffer_clear(ImGuiTextBuffer* self);
        public abstract void igBeginGroup();
        public abstract void ImGuiStorage_Clear(ImGuiStorage* self);
        public abstract void Pair_PairInt(Pair* self, uint _key, int _val_i);
        public abstract void Pair_PairFloat(Pair* self, uint _key, float _val_f);
        public abstract void Pair_PairPtr(Pair* self, uint _key, void* _val_p);
        public abstract void ImGuiTextBuffer_appendf(ImGuiTextBuffer* self, byte* fmt);
        public abstract byte* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self);
        public abstract void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self, int capacity);
        public abstract byte ImGuiTextBuffer_empty(ImGuiTextBuffer* self);
        public abstract byte igSliderScalar(byte* label, ImGuiDataType data_type, void* v, void* v_min, void* v_max, byte* format, float power);
        public abstract byte igBeginCombo(byte* label, byte* preview_value, ImGuiComboFlags flags);
        public abstract int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
        public abstract byte igBeginMenu(byte* label, byte enabled);
        public abstract byte igIsItemHovered(ImGuiHoveredFlags flags);
        public abstract void ImDrawList_PrimWriteVtx(ImDrawList* self, Vector2 pos, Vector2 uv, uint col);
        public abstract void igBullet();
        public abstract byte igInputText(byte* label, byte* buf, uint buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data);
        public abstract byte igInputInt3(byte* label, int* v, ImGuiInputTextFlags extra_flags);
        public abstract void ImGuiIO_ImGuiIO(ImGuiIO* self);
        public abstract void igStyleColorsDark(ImGuiStyle* dst);
        public abstract byte igInputInt(byte* label, int* v, int step, int step_fast, ImGuiInputTextFlags extra_flags);
        public abstract void igSetWindowFontScale(float scale);
        public abstract byte igSliderInt(byte* label, int* v, int v_min, int v_max, byte* format);
        public abstract byte* TextRange_end(TextRange* self);
        public abstract byte* TextRange_begin(TextRange* self);
        public abstract void igSetNextWindowPos(Vector2 pos, ImGuiCond cond, Vector2 pivot);
        public abstract byte igDragInt3(byte* label, int* v, float v_speed, int v_min, int v_max, byte* format);
        public abstract void igOpenPopup(byte* str_id);
        public abstract void TextRange_TextRange(TextRange* self);
        public abstract void TextRange_TextRangeStr(TextRange* self, byte* _b, byte* _e);
        public abstract Vector2 ImDrawList_GetClipRectMax(ImDrawList* self);
        public abstract Vector2 igCalcTextSize(byte* text, byte* text_end, byte hide_text_after_double_hash, float wrap_width);
        public abstract IntPtr igGetDrawListSharedData();
        public abstract void igColumns(int count, byte* id, byte border);
        public abstract byte igIsItemActive();
        public abstract void ImGuiTextFilter_ImGuiTextFilter(ImGuiTextFilter* self, byte* default_filter);
        public abstract void ImGuiOnceUponAFrame_ImGuiOnceUponAFrame(ImGuiOnceUponAFrame* self);
        public abstract byte igBeginDragDropTarget();
        public abstract byte TextRange_empty(TextRange* self);
        public abstract byte ImGuiPayload_IsDelivery(ImGuiPayload* self);
        public abstract void ImGuiIO_AddInputCharacter(ImGuiIO* self, ushort c);
        public abstract void ImDrawList_AddImageRounded(ImDrawList* self, IntPtr user_texture_id, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col, float rounding, int rounding_corners);
        public abstract void ImGuiStyle_ImGuiStyle(ImGuiStyle* self);
        public abstract byte igColorPicker3(byte* label, Vector3* col, ImGuiColorEditFlags flags);
        public abstract Vector2 igGetContentRegionMax();
        public abstract byte igBeginChildFrame(uint id, Vector2 size, ImGuiWindowFlags flags);
        public abstract void igSaveIniSettingsToDisk(byte* ini_filename);
        public abstract void ImFont_ClearOutputData(ImFont* self);
        public abstract byte* igGetClipboardText();
        public abstract void ImDrawList_PrimQuadUV(ImDrawList* self, Vector2 a, Vector2 b, Vector2 c, Vector2 d, Vector2 uv_a, Vector2 uv_b, Vector2 uv_c, Vector2 uv_d, uint col);
        public abstract void igEndDragDropTarget();
        public abstract ushort* ImFontAtlas_GetGlyphRangesKorean(ImFontAtlas* self);
        public abstract int igGetKeyPressedAmount(int key_index, float repeat_delay, float rate);
        public abstract void ImFontAtlas_GetTexDataAsRGBA32(ImFontAtlas* self, byte** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel);
        public abstract void igNewFrame();
        public abstract void igResetMouseDragDelta(int button);
        public abstract float igGetTreeNodeToLabelSpacing();
        public abstract Vector2 igGetMousePos();
        public abstract void GlyphRangesBuilder_AddChar(GlyphRangesBuilder* self, ushort c);
        public abstract void igPopID();
        public abstract byte igIsMouseDoubleClicked(int button);
        public abstract void igStyleColorsClassic(ImGuiStyle* dst);
        public abstract byte ImGuiTextFilter_IsActive(ImGuiTextFilter* self);
        public abstract void ImDrawList_PathClear(ImDrawList* self);
        public abstract void igSetWindowFocus();
        public abstract void igSetWindowFocusStr(byte* name);
        public abstract void igColorConvertHSVtoRGB(float h, float s, float v, float* out_r, float* out_g, float* out_b);
        public abstract void ImColor_ImColor(ImColor* self);
        public abstract void ImColor_ImColorInt(ImColor* self, int r, int g, int b, int a);
        public abstract void ImColor_ImColorU32(ImColor* self, uint rgba);
        public abstract void ImColor_ImColorFloat(ImColor* self, float r, float g, float b, float a);
        public abstract void ImColor_ImColorVec4(ImColor* self, Vector4 col);
        public abstract byte igVSliderFloat(byte* label, Vector2 size, float* v, float v_min, float v_max, byte* format, float power);
        public abstract Vector4 igColorConvertU32ToFloat4(uint @in);
        public abstract void igPopTextWrapPos();
        public abstract void ImGuiTextFilter_Clear(ImGuiTextFilter* self);
        public abstract ImGuiStorage* igGetStateStorage();
        public abstract float igGetColumnWidth(int column_index);
        public abstract void igEndMenuBar();
        public abstract void igSetStateStorage(ImGuiStorage* storage);
        public abstract byte* igGetStyleColorName(ImGuiCol idx);
        public abstract byte igIsMouseDragging(int button, float lock_threshold);
        public abstract void ImDrawList_PrimWriteIdx(ImDrawList* self, ushort idx);
        public abstract void ImGuiStyle_ScaleAllSizes(ImGuiStyle* self, float scale_factor);
        public abstract void igPushStyleColorU32(ImGuiCol idx, uint col);
        public abstract void igPushStyleColor(ImGuiCol idx, Vector4 col);
        public abstract void* igMemAlloc(uint size);
        public abstract void igSetCurrentContext(IntPtr ctx);
        public abstract void igPushItemWidth(float item_width);
        public abstract byte igIsWindowAppearing();
        public abstract ImGuiStyle* igGetStyle();
        public abstract void igSetItemAllowOverlap();
        public abstract void igEndChild();
        public abstract byte igCollapsingHeader(byte* label, ImGuiTreeNodeFlags flags);
        public abstract byte igCollapsingHeaderBoolPtr(byte* label, byte* p_open, ImGuiTreeNodeFlags flags);
        public abstract byte igDragFloatRange2(byte* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, byte* format, byte* format_max, float power);
        public abstract void igSetMouseCursor(ImGuiMouseCursor type);
        public abstract Vector2 igGetWindowContentRegionMax();
        public abstract byte igInputScalar(byte* label, ImGuiDataType data_type, void* v, void* step, void* step_fast, byte* format, ImGuiInputTextFlags extra_flags);
        public abstract void ImDrawList_PushClipRectFullScreen(ImDrawList* self);
        public abstract uint igGetColorU32(ImGuiCol idx, float alpha_mul);
        public abstract uint igGetColorU32Vec4(Vector4 col);
        public abstract uint igGetColorU32U32(uint col);
        public abstract double igGetTime();
        public abstract void ImDrawList_ChannelsMerge(ImDrawList* self);
        public abstract int igGetColumnIndex();
        public abstract byte igBeginPopupContextItem(byte* str_id, int mouse_button);
        public abstract void igSetCursorPosX(float x);
        public abstract Vector2 igGetItemRectSize();
        public abstract byte igArrowButton(byte* str_id, ImGuiDir dir);
        public abstract ImGuiMouseCursor igGetMouseCursor();
        public abstract void igPushAllowKeyboardFocus(byte allow_keyboard_focus);
        public abstract float igGetScrollY();
        public abstract void igSetColumnOffset(int column_index, float offset_x);
        public abstract byte* ImGuiTextBuffer_begin(ImGuiTextBuffer* self);
        public abstract void igSetWindowPosVec2(Vector2 pos, ImGuiCond cond);
        public abstract void igSetWindowPosStr(byte* name, Vector2 pos, ImGuiCond cond);
        public abstract void igSetKeyboardFocusHere(int offset);
        public abstract float igGetCursorPosY();
        public abstract int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self, ImFont* font, ushort id, int width, int height, float advance_x, Vector2 offset);
        public abstract void igEndMainMenuBar();
        public abstract float igGetContentRegionAvailWidth();
        public abstract byte igIsKeyDown(int user_key_index);
        public abstract byte igIsMouseDown(int button);
        public abstract Vector2 igGetWindowContentRegionMin();
        public abstract void igLogButtons();
        public abstract float igGetWindowContentRegionWidth();
        public abstract byte igSliderAngle(byte* label, float* v_rad, float v_degrees_min, float v_degrees_max);
        public abstract byte igTreeNodeExStr(byte* label, ImGuiTreeNodeFlags flags);
        public abstract byte igTreeNodeExStrStr(byte* str_id, ImGuiTreeNodeFlags flags, byte* fmt);
        public abstract byte igTreeNodeExPtr(void* ptr_id, ImGuiTreeNodeFlags flags, byte* fmt);
        public abstract float igGetWindowWidth();
        public abstract void igPushTextWrapPos(float wrap_pos_x);
        public abstract int ImGuiStorage_GetInt(ImGuiStorage* self, uint key, int default_val);
        public abstract byte igSliderInt3(byte* label, int* v, int v_min, int v_max, byte* format);
        public abstract void igShowUserGuide();
        public abstract byte igSliderScalarN(byte* label, ImGuiDataType data_type, void* v, int components, void* v_min, void* v_max, byte* format, float power);
        public abstract ImColor ImColor_HSV(ImColor* self, float h, float s, float v, float a);
        public abstract void ImDrawList_PathLineTo(ImDrawList* self, Vector2 pos);
        public abstract void igImage(IntPtr user_texture_id, Vector2 size, Vector2 uv0, Vector2 uv1, Vector4 tint_col, Vector4 border_col);
        public abstract void igSetNextWindowSizeConstraints(Vector2 size_min, Vector2 size_max, ImGuiSizeCallback custom_callback, void* custom_callback_data);
        public abstract void igDummy(Vector2 size);
        public abstract byte igVSliderInt(byte* label, Vector2 size, int* v, int v_min, int v_max, byte* format);
        public abstract void ImGuiTextBuffer_ImGuiTextBuffer(ImGuiTextBuffer* self);
        public abstract void igBulletText(byte* fmt);
        public abstract byte igColorEdit4(byte* label, Vector4* col, ImGuiColorEditFlags flags);
        public abstract byte igColorPicker4(byte* label, Vector4* col, ImGuiColorEditFlags flags, float* ref_col);
        public abstract void ImDrawList_PrimRectUV(ImDrawList* self, Vector2 a, Vector2 b, Vector2 uv_a, Vector2 uv_b, uint col);
        public abstract byte igInvisibleButton(byte* str_id, Vector2 size);
        public abstract void igLogToClipboard(int max_depth);
        public abstract byte igBeginPopupContextWindow(byte* str_id, int mouse_button, byte also_over_items);
        public abstract void ImFontAtlas_ImFontAtlas(ImFontAtlas* self);
        public abstract byte igDragScalar(byte* label, ImGuiDataType data_type, void* v, float v_speed, void* v_min, void* v_max, byte* format, float power);
        public abstract void igSetItemDefaultFocus();
        public abstract void igCaptureMouseFromApp(byte capture);
        public abstract byte igIsAnyItemHovered();
        public abstract void igPushFont(ImFont* font);
        public abstract byte igInputInt2(byte* label, int* v, ImGuiInputTextFlags extra_flags);
        public abstract void igTreePop();
        public abstract void igEnd();
        public abstract void ImDrawData_ImDrawData(ImDrawData* self);
        public abstract void igDestroyContext(IntPtr ctx);
        public abstract byte* ImGuiTextBuffer_end(ImGuiTextBuffer* self);
        public abstract void igPopStyleVar(int count);
        public abstract byte ImGuiTextFilter_PassFilter(ImGuiTextFilter* self, byte* text, byte* text_end);
        public abstract byte igShowStyleSelector(byte* label);
        public abstract byte igInputScalarN(byte* label, ImGuiDataType data_type, void* v, int components, void* step, void* step_fast, byte* format, ImGuiInputTextFlags extra_flags);
        public abstract byte igTreeNodeStr(byte* label);
        public abstract byte igTreeNodeStrStr(byte* str_id, byte* fmt);
        public abstract byte igTreeNodePtr(void* ptr_id, byte* fmt);
        public abstract float igGetScrollMaxX();
        public abstract void igSetTooltip(byte* fmt);
        public abstract Vector2 igGetContentRegionAvail();
        public abstract byte igInputFloat3(byte* label, Vector3* v, byte* format, ImGuiInputTextFlags extra_flags);
        public abstract byte igDragFloat2(byte* label, Vector2* v, float v_speed, float v_min, float v_max, byte* format, float power);
    }
#pragma warning restore 1591
}
